/**
 * @author kangkai
 * 
*
*ver 1.1 升级成为进化出显示列表
*
*ver 1.2 整理结构，这个算一个顶级的Group3D
*
*ver 1.3 把屏幕震动放到这里而不是放到camera里是有原因的，因为放到camera里
*	如果震动则导致整个屏幕重绘，放在world里只是让mc.y运动，不会消耗计算
*
*ver 1.4 这个是不排序的。
*
*!!注意，要清除这个，请用
*/

package kgame5.k3d.core.obj3d.node3d.group3d {
import kgame5.k3d.core.obj3d.node3d.Node3D;
import kgame5.k3d.core.render.RenderSessionData;

public class World3D extends FastGroup3D{
	
	
	//___________________Method____________________
	public function World3D() {//默认是ccz_bornid
		super();
	}

	//比group简单些
	override public function Update(rsd:RenderSessionData,isParentDirty:Boolean):void{
		for each(var md:Node3D in aChild){	
			md.Update(rsd,false);//经过优化的更新方式,只能绕y轴旋转
		}
	}
	
	//整体清除~~注意其他的group还没做好dispose
	override public function dispose():void{
		this.removeAllChild();
	}
}//end of class
}

//	//!!这个是继承的重写的，因为world的mc是固定不动的，不能被remove
//	//销毁自己所有的子
//	override public function dispose():void{
//		
//		//2,自己释放掉持有的资源
//		
//		var len:int=this.getChildCount();
//		//T.p("group dispose:"+i+" "+len);
//		//!!这个顺序很重要，因为md.dispose会调用父的splice(),从而导致父的删除
//		for(var i:int=len-1;i>=0;i--){
//			var md:Model3D=this.getChildAt(i);
//			//T.p("释放的:"+i+" "+md.v3d_p);
//			md.dispose();//md释放内部资源,这个包含请求父删除自己
//		}
//		
//		aChild=new Array();
//		aSort=new Array();
//
//	}